import orm
'''
----商超管理系统（MySQL版）---
使用MySQL保存数据，实现超市日常管理中以下业务。

一、建立以下数据表并填充数据
产品表：products
列名：主键id  编号num  名称name  单价price  折扣discount

订单表：orders
列名：主键id  编号num  货品数量count  金额amount
二、实现以下菜单并实现业务:
1.查看所有商品信息；
2.查找商品（用户输入商品名称，查看价格和折扣）；
3.添加商品（id需要程序生成）；
4.修改商品价格和折扣（根据编号，设置折扣为0-1之间）；
5.删除商品（根据编号）；
6.查看所有订单；
7.删除订单（根据编号）；
8.订单统计（总销量，总销售额）；
9.商品结算（添加订单）。
'''
def look_product():
    sql=f"""
    select num,name,price,discount from products
    """
    data = orm.read_data(sql)
    if data!=():
        print(f'-编码---名字--价钱--折扣--')
        for product in data:
            print(f'{product[0]}\t{product[1]}\t{product[2]}\t{product[3]}')
    return data
def find_product():
    while True:
        num=input("请输入要查找商品的编号：")
        sql=f"""
        select num,name,price,discount from products where num={num}
        """
        data = orm.read_data(sql)
        if data != ():
            print(f'-编码---名字--价钱--折扣--')
            for product in data:
                print(f'{product[0]}\t{product[1]}\t{product[2]}\t{product[3]}')
        else:
            print('商品不存在,请重新输入')
            continue
        return data

def add_product():
    num=int(input("请输入编号："))
    name=input("请输入名字：")
    price=input("请输入价格：")
    discount=input("请输入折扣：")
    sql=f"""
    insert into products values(null,{num},'{name}','{price}','{discount}')
    """
    rows=orm.write_data(sql)
    if rows>0:
        print(f"商品{name}添加成功")
    else:
        print(f"添加失败")
    return rows
def modify_product():
    num=int(input("请输入你要修改商品的编号："))
    price=input("请输入你要修改的价格：")
    discount=input("请输入你要修改的折扣：")
    sql=f"""
    update products set price={price},discount={discount} where num={num}
    """
    rows=orm.write_data(sql)
    if rows>0:
        print(f"商品{num}修改成功，修改的价格为:{price},折扣为:{discount}")
    else:
        print("修改失败")
    return rows
def delete_product():
    num=int(input("请输入你要删除商品的编号："))
    sql=f"""
    delete from products where num={num}
    """
    rows=orm.write_data(sql)
    if rows>0:
        print(f"商品编号为{num}的删除成功")
    else:
        print("删除失败")
    return rows
def show_order():
    sql=f"""
    select num,count,amount from orders
    """
    data=orm.read_data(sql)
    if data!=():
        print(f'-编码--数量--金额-')
        for order in data:
            print(f'{order[0]}\t{order[1]}\t{order[2]}')

def del_order():
    num=int(input("请输入你要删除的编号："))
    sql=f"""
    delete from orders where num={num}
    """
    rows=orm.write_data(sql)
    if rows>0:
        print(f"订单编号为{num}的订单删除成功")
    else:
        print("删除失败")
    return rows
def count_order():
    sql=f"""
    select num,sum(count),sum(amount) from orders
    """
    data =orm.read_data(sql)
    if data!=():
        print(f"总销量为{data[0][1]},总金额为{data[0][2]}")
def settle():
    count=0
    amount=0
    while True:
        data=find_product()
        if data!=():
            num=int(input("请输入要购买的数量:"))
            money=num*data[0][2]
            count+=num
            amount+=money
            choice=int(input("请输入你的选择:1继续2退出"))
            if choice ==1:
                continue
            else:
                break
    print(f'总数量为{count}总金额为{amount}')
    sql=f"""
    select max(num) from orders
    """
    data=orm.read_data(sql)
    num=data[0][0]+1
    sql=f"""
    insert into orders values(null,{num},{count},{amount})
    """
    rows=orm.write_data(sql)
    if rows>0:
        print("订单写入成功")
    else:
        print("订单写入失败")

if __name__ == '__main__':
    # 测试一下
    # look_product()
    # 测试一下
    # find_product()
    # 测试一下
    # add_product()
    # 测试一下
    # modify_product()
    # 测试一下
    # delete_product()
    # 测试一下
    # show_order()
    # 测试一下
    # del_order()
    # 测试一下
    # count_order()
    # 测试一下
    settle()
